package com.blackhorse.dynamic_sql.sql;

import org.apache.ibatis.jdbc.SQL;

import java.util.Map;

public class UserDynamicSqlProvider {
    //方法中的关键字是区分大小写的  SQL SELECT WHERE
    //该方法会根据传递过来的map中的参数内容  动态构建sql语句
    public String findByParamSQL(Map<String, Object> param) {
        return new SQL() {
            {
                SELECT("*");
                FROM("user");
                if (param.get("id")!=null) {
                    WHERE("id=#{id}");
                }
                if(param.get("username")!=null) {
                    WHERE("username=#{username}");
                }
                if(param.get("birthday")!=null) {
                    WHERE("birthday=#{birthday}");
                }
                if(param.get("sex")!=null) {
                    WHERE("sex=#{sex}");
                }
                if(param.get("address")!=null) {
                    WHERE("address=#{address}");
                }
            }
        }.toString();
    }
}
